Apache Commons Collections লাইব্রেরি ডেটা ম্যানিপুলেশনকে সহজ এবং শক্তিশালী করার জন্য নানা ধরনের ক্লাস এবং ফিচার সরবরাহ করে। এর মধ্যে একটি শক্তিশালী ফিচার হল Transformed Collections, যা আপনাকে একটি কালেকশনের উপাদানগুলির উপর কাস্টম ট্রান্সফরমেশন (যেমন মান পরিবর্তন) প্রয়োগ করার সুযোগ দেয়। আপনি এই ফিচারটি ব্যবহার করে একটি কালেকশনের প্রতিটি উপাদানকে একটি নির্দিষ্ট ফাংশন বা লজিকের মাধ্যমে ট্রান্সফর্ম করতে পারেন।
এটি ডেটা স্ট্রাকচারগুলির মধ্যে পরিবর্তন বা ট্রান্সফরমেশন করার জন্য অত্যন্ত উপকারী, যেমন যদি আপনি একটি List
এর সব উপাদানকে uppercase এ রূপান্তর করতে চান, বা একটি Map
এর মানগুলিকে কোনো নির্দিষ্ট ফর্ম্যাটে সাজাতে চান।
এই টিউটোরিয়ালে, আমরা দেখব কিভাবে Transformed Collections তৈরি করতে হয় এবং Transformer ফিচার ব্যবহার করে কাস্টম ট্রান্সফরমেশন প্রয়োগ করতে হয়।
Transformed Collections হল একটি বিশেষ ধরনের কালেকশন যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট Transformer ক্লাস ব্যবহার করে ট্রান্সফর্ম বা রূপান্তরিত হয়। Transformer হল একটি ফাংশনাল ফিচার যা একটি ইনপুট (যেমন একটি মান বা অবজেক্ট) গ্রহণ করে এবং তাকে একটি নতুন আউটপুট মানে রূপান্তরিত করে।
আপনি Transformed Collections তৈরি করতে Transformer ক্লাসের ইমপ্লিমেন্টেশন ব্যবহার করতে পারেন। এতে আপনি আপনার ডেটার উপর কাস্টম ট্রান্সফরমেশন প্রয়োগ করতে পারেন, যেমন:
Transformer হল একটি Apache Commons Collections ক্লাস যা একটি ইনপুট মান (যেমন একটি অবজেক্ট) গ্রহণ করে এবং সেটিকে অন্য একটি আউটপুট মানে রূপান্তরিত করে। আপনি আপনার কাস্টম ট্রান্সফরমেশন ফাংশন তৈরি করতে Transformer ইন্টারফেস ইমপ্লিমেন্ট করতে পারেন।
import org.apache.commons.collections4.Transformer;
public class TransformerExample {
public static void main(String[] args) {
// Create a transformer to convert string to uppercase
Transformer<String, String> toUpperCaseTransformer = new Transformer<String, String>() {
@Override
public String transform(String input) {
return input.toUpperCase(); // Convert string to uppercase
}
};
// Use the transformer
String result = toUpperCaseTransformer.transform("hello world");
System.out.println(result); // Output: "HELLO WORLD"
}
}
এখানে:
এখন আমরা দেখব কিভাবে Transformed Collections তৈরি করতে হয়। Transformed Collection তৈরি করতে আমরা CollectionUtils অথবা ListUtils ক্লাস ব্যবহার করতে পারি, যা আপনার কালেকশন আইটেমগুলির উপর Transformer প্রয়োগ করবে এবং একটি নতুন কালেকশন রিটার্ন করবে।
import org.apache.commons.collections4.Transformer;
import org.apache.commons.collections4.ListUtils;
import java.util.List;
import java.util.ArrayList;
public class TransformedCollectionExample {
public static void main(String[] args) {
// Create a list of strings
List<String> originalList = new ArrayList<>();
originalList.add("apple");
originalList.add("banana");
originalList.add("cherry");
// Create a transformer to convert strings to uppercase
Transformer<String, String> toUpperCaseTransformer = new Transformer<String, String>() {
@Override
public String transform(String input) {
return input.toUpperCase(); // Convert string to uppercase
}
};
// Apply transformer to the list
List<String> transformedList = ListUtils.transform(originalList, toUpperCaseTransformer);
// Print the transformed list
System.out.println("Transformed List: " + transformedList);
}
}
এখানে:
ListUtils.transform()
মেথড ব্যবহার করে মূল লিস্টের উপাদানগুলির উপর ট্রান্সফরমেশন প্রয়োগ করা হয়েছে।আউটপুট:
Transformed List: [APPLE, BANANA, CHERRY]
আপনি Map এর মানগুলির উপরও Transformer প্রয়োগ করতে পারেন। উদাহরণস্বরূপ, যদি আপনার একটি Map<String, Integer>
থাকে এবং আপনি মানগুলিকে দ্বিগুণ করতে চান, তবে আপনি নিম্নলিখিতভাবে কাজ করতে পারেন।
import org.apache.commons.collections4.Transformer;
import org.apache.commons.collections4.MapUtils;
import java.util.Map;
import java.util.HashMap;
public class MapTransformedExample {
public static void main(String[] args) {
// Create a map of strings to integers
Map<String, Integer> originalMap = new HashMap<>();
originalMap.put("apple", 1);
originalMap.put("banana", 2);
originalMap.put("cherry", 3);
// Create a transformer to double the integer values
Transformer<Integer, Integer> doubleValueTransformer = new Transformer<Integer, Integer>() {
@Override
public Integer transform(Integer input) {
return input * 2; // Double the value
}
};
// Apply transformer to the map values
Map<String, Integer> transformedMap = MapUtils.transformValues(originalMap, doubleValueTransformer);
// Print the transformed map
System.out.println("Transformed Map: " + transformedMap);
}
}
এখানে:
আউটপুট:
Transformed Map: {apple=2, banana=4, cherry=6}
Transformed Collections একটি শক্তিশালী ফিচার যা Apache Commons Collections লাইব্রেরি সরবরাহ করে। এটি আপনাকে একটি কালেকশনের প্রতিটি উপাদানকে একটি নির্দিষ্ট Transformer এর মাধ্যমে ট্রান্সফর্ম করতে সহায়তা করে। আপনি List, Map বা অন্যান্য কালেকশনগুলিতে Transformer প্রয়োগ করে কাস্টম ট্রান্সফরমেশন করতে পারেন। এটি ডেটা ম্যানিপুলেশন এবং ফাংশনাল প্রোগ্রামিংয়ের জন্য একটি অত্যন্ত কার্যকরী টুল।
common.read_more